import axios from 'axios'
import { ElMessage } from 'element-plus'
import 'element-plus/theme-chalk/el-message.css'
import { getToken } from './admin'

// 创建axios实例
const request = axios.create({
  baseURL: 'http://localhost:8080/api',
  timeout: 5000,
})

// 请求拦截器
request.interceptors.request.use(
  (config) => {
    // 请求之前
    config.headers['Content-Type'] = 'application/json;charset=utf-8'
    config.headers['token'] = getToken()
    config.headers['code'] = 'admin'
    return config
  },
  (error) => {
    // 请求错误
    ElMessage.error('请求出错')
    return Promise.reject(error)
  }
)

// 响应拦截器
request.interceptors.response.use(
  (response) => {
    // 2xx状态码触发
    // response:响应回来的对象，里面包含很多信息，如请求头，响应体，响应状态码等
    if (response.data.code === '0') {
      return response.data //响应体对象{code,msg,data}
    } else {
      // 响应错误同一处理
      ElMessage.error(response.data.msg || '响应失败')
      // ElMessage.error(response.data.msg ? response.data.msg : '响应失败')
      return Promise.reject(response.data)
    }
  },
  (error) => {
    // 响应错误
    ElMessage.error('操作失败')
    return Promise.reject(error)
  }
)

// 默认导出
export default request
